home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / archive / sys / kowin14d.lzh / smpl / mtmlib / more.c < prev    next >
C/C++ Source or Header  |  1995-02-11  |  1KB  |  74 lines

  1. /*    MiniTERM v2 smpl    */
  2.  
  3. #include    <mtm_stdio.h>
  4.  
  5. #define        MTA_WINDOW_TITLE    "more"
  6. #define        MTA_WINDOW_SIZEX    80
  7. #define        MTA_WINDOW_SIZEY    25
  8.  
  9. #include    "mtm_conf.c"
  10.  
  11. FILE    *Fp= NULL;
  12.  
  13. static
  14. file_close()
  15. {
  16.     if( Fp ){
  17.         fclose( Fp );
  18.         Fp= NULL;
  19.     }
  20. }
  21.  
  22. static int
  23. key( msg )
  24. char    *msg;
  25. {
  26.     for(;;){
  27.         int    c;
  28.         fputs( msg, stdout );
  29.         c= getch();
  30.         fputs( "        \r", stdout );
  31.         switch( c ){
  32.         case ' ':    return    24;
  33.         case '\r':    return    1;
  34.         case 'Q':
  35.         case 'q':    return    -1;
  36.         }
  37.     }
  38. }
  39.  
  40. more( file )
  41. char    *file;
  42. {
  43.     int    line= 0,
  44.         next= 24;
  45.     if( Fp= fopen( file, "rb" ) ){
  46.         int    c;
  47.         for(; (c= fgetc( Fp )) >= 0 ;){
  48.             putchar( c );
  49.             if( c == '\n' ){
  50.                 if( ++line == next ){
  51.                     line= 0;
  52.                     next= key( "=more=\r" );
  53.                 }
  54.             }
  55.         }
  56.         fclose( Fp );
  57.         Fp= NULL;
  58.         for(; key( "=eof=\r" ) != -1 ;);
  59.     }
  60. }
  61.  
  62. main( argc, argv )
  63. char    **argv;
  64. {
  65.     signal( kSIGTERM, file_close );
  66.     for(; --argc ;)
  67.         more( *++argv );
  68. }
  69.  
  70. /*
  71.     ファイルの more 表示をするだけ
  72. */
  73.  
  74.